from flask import Flask, render_template, request, redirect, url_for, session
from services.zont import *

def init_routes(app):
    @app.route('/', methods=['GET', 'POST'])
    def index():
        if 'session_id' not in session:
        # Создаем новый UUID для сессии
        new_session_guid = str(uuid.uuid4())
        session['session_guid'] = new_session_guid

        # Вставляем новую запись в таблицу sessions
        insert_query = """
        INSERT INTO public.sessions (session_guid)
        VALUES (%s)
        RETURNING session_id;  
        """ # Возвращает ID новой сессии, если нужно
        
        new_session_id = execute_query(insert_query, params=(new_session_guid,), is_select=True)
        session['session_id'] = new_session_id[0][0] if new_session_id else None
 
 
        # Получаем список задач из БД
        tasks_query = "SELECT * FROM jira_tasks WHERE project = 'HelpDesk'"  # Убедитесь, что ваш запрос корректен
        tasks = execute_query(tasks_query, is_select=True)
        print(f"tasks: {tasks}")
        # Выбираем одну случайную задачу из списка, если список не пустой
        task = random.choice(tasks) if tasks else None
        
        # Получаем опции MoSCoW из БД
        moscow_options = execute_query("SELECT rating_name, rating_value FROM moscow_ratings ORDER BY rating_value", is_select=True)
        
        return render_template('index.html', task=task, moscow_options=moscow_options)


    @app.route('/submit_rating', methods=['POST'])
    def submit_rating():
        # Здесь логика обработки отправленной формы
        task_id = request.form.get('task_id')
        moscow_rating = request.form.get('moscow_rating')
        # Пример запроса на обновление рейтинга фичи, нужно адаптировать под вашу структуру БД
        execute_query("UPDATE features SET moscow_rating = %s WHERE task_id = %s", params=(moscow_rating, task_id), is_select=False)
        # После обработки перенаправляем пользователя обратно на главную страницу
        return redirect(url_for('index'))